
package com.thinkgem.jeesite.common.pojo.auth.access.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.thinkgem.jeesite.common.pojo.auth.access.type.Relation;

/** 
 * controller的访问信息注解
 * 标记controller方法的访问许可(添加有效,默认为空,类似retain)
 * 默认松散检测原则(数据项默认'||'关系)
 * '@AccessNeeded(role="a",dept="100000")'
 * 表示当前方法除了'本公司管理员(角色a)'或者'100000'部门的请求外都不能通过
 * '@AccessNeeded(role={"a","b"})'
 * 表示当前方法除了'角色a'或'角色b'的请求外都不能通过
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Documented
@Inherited
public @interface AccessNeeded {
	String[] role() default "";
	String[] office() default "";//dept
	Relation relation() default Relation.OR; 
}

